<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  /* 
    分析: 将数组分成两部分，以排序和未排序
      未排序默认从第二个开始(下标索引为1)
      倒遍历已经排序的部分，若发现j-1处的值比j处的值大。则交换位置
   */
  "use strict"; {
    let arr = [4, 3, 2, 10, 12, 1, 5, 6];
    const insertion = (arr) => {
      for (let i = 1; i < arr.length; i++) {
        for (let j = i; j > 0; j--) {
          if (arr[j - 1] > arr[j]) {
            [arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
          } else {
            break;
          };
        };
      };
    };
    insertion(arr);
    console.log(arr);
  };
</script>

</html>